package com.quanyan.place.service;

import com.quanyan.api.APIResponse;
import com.quanyan.place.entity.TbBizPlaceMemberOpHistory;
import com.quanyan.place.entity.TbBizPlaceOrder;
import com.quanyan.place.entity.apireq.ReqOrderOperate;
/**
 * 
 * @des
 * @author tim
 * @date 2017年5月8日
 */
public interface PlaceOrderAdminCallbackService {

    /**  商家端开单回调 **/
    //取消订单
    APIResponse<?> billingOrderCancelOperate(ReqOrderOperate reqOrderOperate);

    //订单完成
    APIResponse<?> billingOrderCompletePayOperate(ReqOrderOperate reqOrderOperate);

    //订单退款中
    APIResponse<?> billingOrderUnsubscribeOperate(ReqOrderOperate reqOrderOperate, TbBizPlaceOrder tbBizPlaceOrder);

    //订单退款完成
    APIResponse<?> billingOrderCompleteUnsubscribeOperate(ReqOrderOperate reqOrderOperate, TbBizPlaceOrder tbBizPlaceOrder);

    //退款异常
    APIResponse<?> billingOrderCancleToUnsubscribeOperate(ReqOrderOperate reqOrderOperate, TbBizPlaceOrder tbBizPlaceOrder);

    /**  商家端小商品回调 **/
    //取消订单
    APIResponse<?> goodsOrderCancelOperate(ReqOrderOperate reqOrderOperate);

    //订单完成
    APIResponse<?> goodsOrderCompletePayOperate(ReqOrderOperate reqOrderOperate);

    //订单退款中
    APIResponse<?> goodsOrderUnsubscribeOperate(ReqOrderOperate reqOrderOperate, TbBizPlaceOrder tbBizPlaceOrder);

    //订单退款完成
    APIResponse<?> goodsOrderCompleteUnsubscribeOperate(ReqOrderOperate reqOrderOperate, TbBizPlaceOrder tbBizPlaceOrder);

    //退款异常
    APIResponse<?> goodsOrderCancleToUnsubscribeOperate(ReqOrderOperate reqOrderOperate, TbBizPlaceOrder tbBizPlaceOrder);

    /**  商家端包场回调 **/
    //取消订单
    APIResponse<?> bookAllOrderCancelOperate(ReqOrderOperate reqOrderOperate);

    //订单完成
    APIResponse<?> bookAllOrderCompletePayOperate(ReqOrderOperate reqOrderOperate);

    //订单退款中
    APIResponse<?> bookAllOrderUnsubscribeOperate(ReqOrderOperate reqOrderOperate, TbBizPlaceOrder tbBizPlaceOrder);

    //订单退款完成
    APIResponse<?> bookAllOrderCompleteUnsubscribeOperate(ReqOrderOperate reqOrderOperate, TbBizPlaceOrder tbBizPlaceOrder);

    //退款异常
    APIResponse<?> bookAllOrderCancleToUnsubscribeOperate(ReqOrderOperate reqOrderOperate, TbBizPlaceOrder tbBizPlaceOrder);

    /**  商家端门票回调 **/
    //取消订单
    APIResponse<?> ticketOrderCancelOperate(ReqOrderOperate reqOrderOperate);

    //订单完成
    APIResponse<?> ticketOrderCompletePayOperate(ReqOrderOperate reqOrderOperate);

    //订单退款中
    APIResponse<?> ticketOrderUnsubscribeOperate(ReqOrderOperate reqOrderOperate, TbBizPlaceOrder tbBizPlaceOrder);

    //订单退款完成
    APIResponse<?> ticketOrderCompleteUnsubscribeOperate(ReqOrderOperate reqOrderOperate, TbBizPlaceOrder tbBizPlaceOrder);

    //退款异常
    APIResponse<?> ticketOrderCancleToUnsubscribeOperate(ReqOrderOperate reqOrderOperate, TbBizPlaceOrder tbBizPlaceOrder);

    /**  商家端会员充值回调 **/
    //订单完成
    APIResponse<?> cardOrderCompletePayOperate(ReqOrderOperate reqOrderOperate);

    /**
     * app会员卡开卡充值回调
     * @param reqOrderOperate
     * @param tbBizPlaceMemberOpHistory
     * @return
     */
    APIResponse<?> appCardChargeOrderCompletePayOperate(ReqOrderOperate reqOrderOperate,
                                                        TbBizPlaceMemberOpHistory tbBizPlaceMemberOpHistory);

    /**  商家端购物车回调 **/
    //取消订单
    APIResponse<?> shoppingCartOrderCancelOperate(ReqOrderOperate reqOrderOperate);

    //订单完成
    APIResponse<?> shoppingCartOrderCompletePayOperate(ReqOrderOperate reqOrderOperate);

    //订单退款中
    APIResponse<?> shoppingCartOrderUnsubscribeOperate(ReqOrderOperate reqOrderOperate, TbBizPlaceOrder tbBizPlaceOrder);

    //订单退款完成
    APIResponse<?> shoppingCartOrderCompleteUnsubscribeOperate(ReqOrderOperate reqOrderOperate, TbBizPlaceOrder tbBizPlaceOrder);

    //退款异常
    APIResponse<?> shoppingCartOrderCancleToUnsubscribeOperate(ReqOrderOperate reqOrderOperate, TbBizPlaceOrder tbBizPlaceOrder);
}
